# -*- coding: utf-8 -*-

from PyQt5.QtWidgets import *
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *


class QFile(QWidget):
    def __init__(self):
        super(QFile, self).__init__()
        self.setWindowTitle("QFileDialog 示例")

        layout = QVBoxLayout()

        self.btn_img = QPushButton("图片上传")
        self.btn_img.clicked.connect(self.get_file)
        layout.addWidget(self.btn_img)

        self.label = QLabel("")
        layout.addWidget(self.label)

        self.load_img = QPushButton("加载文本文件")
        self.load_img.clicked.connect(self.get_files)
        layout.addWidget(self.load_img)

        self.contents = QTextEdit()
        layout.addWidget(self.contents)

        self.setLayout(layout)

    def get_file(self):
        # 打开C盘目录下文件，只显示.jpg,.gif格式
        file_name, _ = QFileDialog.getOpenFileName(self, 'Open Files', "c:\\", "Image files(*.jpg *.gif)")
        self.label.setPixmap(QPixmap(file_name))

    def get_files(self):
        dlg = QFileDialog()
        # 设置打开文件为任意文件
        dlg.setFileMode(QFileDialog.AnyFile)
        # 文件过滤
        dlg.setFilter(QDir.Files)

        # 文本对话框，使用QFileDialog的exec_()选择文件，并显示
        if dlg.exec_():
            # 接受选中文件的路径，默认为列表
            filename = dlg.selectedFiles()
            # 读取并展示
            f = open(filename[0], 'r')
            with f:
                data = f.read()
                self.contents.setText(data)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    file = QFile()
    file.show()
    sys.exit(app.exec_())

